package com.xique.door.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xique.door.bean.domain.BaseUser;
import com.xique.door.bean.domain.BaseUserV1;

import java.util.List;

/**
 * 用户Service接口
 *
 * @author caogq
 * @date 2021-12-10
 */
public interface IBaseUserService extends IService<BaseUserV1> {
    /**
     * 查询用户
     *
     * @param id 用户ID
     * @return 用户
     */
    public BaseUser selectBaseUserById(Long id);

    /**
     * 根据登录信息查询用户
     *
     * @param loginName
     * @return com.xique.door.bean.domain.BaseUser
     * @author shd
     * @date 2021/12/31 11:48
     */
    BaseUser selectBaseUserByLoginName(String loginName);

    /**
     * 根据登录信息查询用户
     *
     * @param loginName
     * @return com.xique.door.bean.domain.BaseUser
     * @author shd
     * @date 2021/12/31 11:48
     */
    List<BaseUserV1> selectBaseUserV1ByLoginName(String loginName);

    /**
     * 根据登录信息查询用户
     *
     * @param loginName
     * @return com.xique.door.bean.domain.BaseUser
     * @author shd
     * @date 2021/12/31 11:48
     */
    List<BaseUserV1> selectBaseUserV1sByLoginName(String loginName);

    BaseUserV1 selectBaseUserV1sCellphone(String cellphone);


    /**
     * 根据登录信息查询用户
     *
     * @param openId
     * @return com.xique.door.bean.domain.BaseUser
     * @author shd
     * @date 2021/12/31 11:48
     */
    List<BaseUserV1> selectBaseUserV1ByOpenId(String openId);

    BaseUserV1 selectBaseUserV1ByUnionId(String unionId);

    /**
     * 查询用户列表
     *
     * @param baseUser 用户
     * @return 用户集合
     */
    public List<BaseUser> selectBaseUserList(BaseUser baseUser);

    /**
     * 新增用户
     *
     * @param baseUser 用户
     * @return 结果
     */
    public int insertBaseUser(BaseUser baseUser);

    /**
     * 修改用户
     *
     * @param baseUser 用户
     * @return 结果
     */
    public int updateBaseUser(BaseUser baseUser);

    /**
     * 批量删除用户
     *
     * @param ids 需要删除的用户ID
     * @return 结果
     */
    public int deleteBaseUserByIds(Long[] ids);

    /**
     * 删除用户信息
     *
     * @param id 用户ID
     * @return 结果
     */
    public int deleteBaseUserById(Long id);

    /**
     * @param phone
     * @return
     */
    List<BaseUser> selectBaseUserByPhone(String phone);

    List<BaseUserV1> selectBaseUserByParkMiniOpenIdAndPhone(String openId,String phone);

}
